package com.sais.manage.boot.platform.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sais.manage.boot.platform.dto.RoleDTO;
import com.sais.manage.boot.platform.dto.RoleSaveDTO;
import com.sais.manage.boot.platform.dto.RoleSearchDTO;

import java.util.List;

/**
 * 宿舍管理系统-角色 service 接口
 *
 * @author zhang
 * @date 2019/11/29
 **/
public interface IRoleService {

    /**
     * 保存 角色
     *
     * @param roleSaveDTO
     * @return
     */
    boolean saveRole(RoleSaveDTO roleSaveDTO);


    /**
     * 创建 角色
     *
     * @param roleSaveDTO
     * @return
     */
    boolean createRole(RoleSaveDTO roleSaveDTO);


    /**
     * 更新 角色
     *
     * @param roleSaveDTO
     * @return
     */
    boolean updateRole(RoleSaveDTO roleSaveDTO);


    /**
     * 根据 角色业务主键 删除角色记录
     *
     * @param roleId
     * @return
     */
    boolean deleteRole(String roleId);


    /**
     * 根据 角色业务主键 查询
     *
     * @param roleId
     * @return
     */
    RoleDTO selectRole(String roleId);


    /**
     * 分页 条件查询
     *
     * @param current
     * @param size
     * @param roleSearchDTO
     * @return
     */
    Page<RoleDTO> listRole(Integer current, Integer size, RoleSearchDTO roleSearchDTO);


    /**
     * 角色 绑定 菜单
     *
     * @param menuIds
     * @param roleId
     * @return
     */
    boolean bindRoleMenu(String roleId, List<String> menuIds);


    /**
     * 角色 解绑 菜单
     *
     * @param roleId
     * @return
     */
    boolean unBindRoleMenu(String roleId);
}
